1. Technical Field
The present invention is an improved data processing system and in particular a method and apparatus for managing transfer of data in a data processing system. Still more particularly, the present invention provides a method, apparatus, and computer instructions for managing flow control in a data processing system.
2. Description of Related Art
A network interface card (NIC), also referred to as a network adapter, is a printed circuit board used in client and server data processing systems to control the exchange of data on a data link level. Ethernet network adapters have transmit and receive buffers to store frame data. Under ideal conditions in a network data processing system, no contention occurs for these resources. Under actual conditions, however, data may be lost due to transmit under runs or receive overruns. These conditions may result from heavy network traffic or excessive latencies within the network data processing system.
Data is lost when data packets are received faster at the network adapter than they are transmitted across the bus to the rest of the data processing system. The receive first-in-first-out (FIFO) buffer fills up and data may be lost.
Flow control is used to avoid data loss. One mechanism involves used I.E.E.E. 802.3x and involves sending a multicast “pause” frame with a pause timer value requesting the link partner to not send any data frames within the timer value. To terminate the pause condition before the timer has expired, another pause frame may be sent with a pause timer value of zero.
The flow control typically is implemented in network adapters by having the receive FIFO buffer programmed with a threshold that is used to trigger the transmission of flow control frames using preprogrammed pause timer value. The network adapter continues to transmit pause frames as long as the threshold value is exceeded. If the data in the buffer falls below the threshold value prior to the expiration of the time, another pause frame is sent with a zero time to re-enable the network operation. The pause frames are required to terminate at the receiving port of the network adapter, transmitting the data, without broadcasting these pause frames to the entire domain.
This system works well under most normal circumstances. Some early switches, however, do not comply with the standard and will broadcast the pause frames to the entire multicast group. This type of broadcasting causes excessive congestion on the network. In some cases the congestion may not be severe if the pause frame transmission is infrequent. In a case in which a data processing system has crashed and the network adapter is still powered, the continuous transmission of pause frames can slow down the entire network if the switch broadcasts these frames.
Therefore, it would be advantageous to have an improved method, apparatus, and computer instructions for managing flow control to avoid excessive congestion in a network data processing system.